package br.com.gustavobhz.mvc.logica;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

import javax.servlet.RequestDispatcher;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.xml.ws.Action;

import br.com.gustavobhz.jdbc.dao.ContatoDAO;
import br.com.gustavobhz.jdbc.modelo.Contato;

public class AlteraContatoLogic implements Logica {
	
	/*
	 * @author https://code.google.com/p/braido/
	 */
    public void executa(HttpServletRequest request, HttpServletResponse response)
    throws Exception {
            String paramAltera = request.getParameter("paramAltera");
            if(paramAltera.equalsIgnoreCase("altera")){
                    this.altera(request, response);
            }else if(paramAltera.equalsIgnoreCase("popula")){
                    this.popula(request, response);
            }
    }

	public void altera(HttpServletRequest request, HttpServletResponse response) throws Exception {
		Contato contato = new Contato();
		long id = Long.parseLong(request.getParameter("id"));
		contato.setId(id);
		contato.setNome(request.getParameter("nome"));
		contato.setEndereco(request.getParameter("endereco"));
		contato.setEmail(request.getParameter("email"));
		
		// Converte a data de String para Calendar
		String dataEmTexto = request.getParameter("dataNascimento");
		Date date = new SimpleDateFormat("dd/MM/yyyy").parse(dataEmTexto);
		Calendar dataNascimento = Calendar.getInstance();
		dataNascimento.setTime(date);
		contato.setDataNascimento(dataNascimento);
		
		ContatoDAO dao = new ContatoDAO();
		dao.atualiza(contato);
		RequestDispatcher rd = request
				.getRequestDispatcher("/lista-contatos-elegante.jsp");
		rd.forward(request, response);
		System.out.println("Alterando contato ..." + contato.getNome());

	}
	
    public void popula(HttpServletRequest request, HttpServletResponse response)
    throws Exception {
            String id = request.getParameter("id");
            Contato contato = new ContatoDAO().getEspecifico(id);
            request.setAttribute("contato", contato);
            RequestDispatcher rd = request.getRequestDispatcher("/altera-contato.jsp");
            rd.forward(request, response);
            System.out.println("Recebido o ID para efetuar a alteração, " + contato.getId());
    }
}